package com.softeem.idriveserver.dto;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 统一返回结果封装
 */
@Data
@Accessors(chain = true)  //开启链式编程
public class Result {

    /**
     * 状态码 0-成功  1-失败
     */
    private Integer code;
    /**
     * 附加文本信息
     */
    private String msg;
    /**
     * 是否执行成功
     */
    private boolean success;
    /**
     * 返回附加数据，例如执行查询操作时的结果集
     */
    private Object data;
    /**
     * 总数据条数（分页用）
     */
    private Long count;

    private Result(){

    }

    /**
     * 统一成功结果
     * @return
     */
    public static Result ok(){
        Result r = new Result();
        r.code = 0;
        r.msg = "执行成功";
        r.success = true;
        return r;
    }

    /**
     * 统一失败结果
     * @return
     */
    public static Result fail(){
        Result r = new Result();
        r.code = -1;
        r.msg = "执行失败";
        r.success = false;
        return r;
    }

}
